#C 语言的 while 循环语句
循环语句(Loop Statement) 是一种让程序重复执行一段代码的语句。
C 语言可以使用 while
或 do ... while
来创建循环,前者先判断循环条件再执行代码,后者先执行代码再判断循环条件。
#while 循环
while
循环的基本结构如下:
while (循环条件)
{
循环体
}
说明:
- 判断“循环条件”是否为
true
- 如果为
true
则执行循环体,然后进入下一轮循环 - 如果为
false
则结束循环
- 如果为
示例:
#include <stdio.h>
int main(void)
{
int i = 5;
while (i > 0) // i 大于 0 时执行循环
{
printf("循环执行,i=%d\n", i);
i -= 1; // 将 i 的值减一
}
return 0;
}
说明:
- 当
i
大于 0 时,执行循环 - 循环中打印
i
的值,然后将i
值减一
运行结果:
循环执行,i=5 循环执行,i=4 循环执行,i=3 循环执行,i=2 循环执行,i=1
#do ... while 循环
do ... while
循环的基本结构如下:
do
{
循环体
}
while(循环条件);
说明:
- 执行“循环体”,然后判断“循环条件”是否为
true
- 如果为
true
,则进入下一轮循环 - 如果为
false
则结束循环
- 如果为
因为
do ... while
先执行循环体,再进行循环条件的判断;所以即使循环条件一开始就是false
,循环体也会执行一次。
示例:
#include <stdio.h>
int main(void)
{
int i = 0; // 初始值为 0
do
{
printf("循环执行,i=%d\n", i);
i -= 1; // 将 i 的值减一
}
while (i > 0); // i 大于 0 时继续执行循环
return 0;
}
说明:
- 循环中打印
i
的值,然后将i
值减一 - 当
i
大于 0 时,继续执行循环
虽然 i
的初始值是 0,不满足大于 0 的条件;但是由于先执行“循环体”,后判断“循环条件”;所以仍然会打印一次。
运行结果:
循环执行,i=0
#break 跳出循环
使用 break
可以提前跳出循环。
示例:
#include <stdio.h>
int main(void)
{
int i = 5;
while (i > 0) // i 大于 0 时执行循环
{
printf("循环执行,i=%d\n", i);
i -= 1; // 将 i 的值减一
if (i == 2) // 如果 i 的值为 2
{
break; // 跳出循环
}
}
return 0;
}
说明:
- 当
i
大于 0 时,执行循环 - “循环体”中如果
i
的值是 2,则提前结束循环
运行结果:
循环执行,i=5 循环执行,i=4 循环执行,i=3
#continue 继续循环
使用 continue
可以提前进入下一轮循环。
示例:
#include <stdio.h>
int main(void)
{
int i = 5;
while (i > 0) // i 大于 0 时执行循环
{
if (i % 2 == 0) // 如果 i 除以 2 的余数为0
{
i -= 1; // 将 i 的值减一
continue; // 进入下一轮循环
}
printf("循环执行,i=%d\n", i);
i -= 1; // 将 i 的值减一
}
return 0;
}
说明:
- 当
i
大于 0 时,执行循环 - “循环体”中如果
i
除以 2 余数为 0,则提前进入下一轮循环
运行结果:
循环执行,i=5 循环执行,i=3 循环执行,i=1